package com.example.administrator.androiddate;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.Log;


/**
 * Created by admin on 2017/12/6.
 * 点击音效工具类
 */

public class SoundPoolUtils {

    public static SoundPoolUtils mSoundPoolutils;
    private SoundPool soundPool;
    public static final int COUNT_DOWN = 1;  // 音乐标记  倒计时
    public static final int POP_UP = 2;  // 音乐标记
    public static final int CLICK_RESPONSE = 3;  // 音乐标记
    public static final int CLICK_NO_RESPONSE = 4;  // 音乐标记
    private int j = 0;
    private int i = 0;

    public SoundPoolUtils(Context context) {
        init(context);
    }

    private void init(Context context) {
        soundPool = new SoundPool(5, AudioManager.STREAM_SYSTEM, 5);
        soundPool.load(context, R.raw.avchat_no_response, COUNT_DOWN);
        soundPool.load(context, R.raw.avchat_peer_busy, POP_UP);
        soundPool.load(context, R.raw.avchat_peer_reject, CLICK_RESPONSE);
        Log.e("----", "999");

    }

    public static SoundPoolUtils getInstence(Context context) {
        if (mSoundPoolutils == null) {
            synchronized (SoundPoolUtils.class) {
                if (mSoundPoolutils == null) {
                    mSoundPoolutils = new SoundPoolUtils(context);
                }
            }
        }
        return mSoundPoolutils;
    }

    public void startSound(final int soundID) {
        Log.e("----", "9");
        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                if (i == 0) {
                    i++;
                    soundPool.play(
                            soundID,
                            1f,   //左耳道音000量【0~1】
                            1f,   //右耳道音量【0~1】
                            1,     //播放优先级【0表示最低优先级】
                            -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
                            1     //播放速度【1是正常，范围从0~2】
                    );
                }

            }
        });

    }

    public void startSound2(final int soundID) {
        if (j == 0) {
            soundPool.stop(1);
            j++;
        }
        if (j == 1) {
            soundPool.stop(2);
        }

        soundPool.play(
                soundID,
                1f,   //左耳道音000量【0~1】
                1f,   //右耳道音量【0~1】
                1,     //播放优先级【0表示最低优先级】
                -1,     //循环模式【0表示循环一次，-1表示一直循环，其他表示数字+1表示当前数字对应的循环次数】
                1     //播放速度【1是正常，范围从0~2】
        );
    }
public void destorySoundPool()
{
    soundPool.release();
}

}



